package com.aabte.design2.structural.adapter;

/**
 * 适配器假扮成一个圆钉 （Round­Peg）， 其半径等于方钉 （Square­Peg） 横截面对角线的一半 （即能够容纳方钉的最小外接圆的半径）。
 *
 * @author Daniel
 * @version 1.0
 * @date 2020/5/3
 */
public class Application {
    public static void main(String[] args) {
        RoundHole hole = new RoundHole(5);
        RoundPeg rpeg = new RoundPeg(5);
        boolean rs = hole.fits(rpeg);
        System.out.println("rs = " + rs);

        SquarePeg smallSqpeg = new SquarePeg(5);
        SquarePeg largeSqpeg = new SquarePeg(10);
        // 此处无法编译（类型不一致）
        // hole.fits(smallSqpeg);

        // 使用适配器模式解决
        RoundPeg smallRpeg = new SquarePegAdapter(smallSqpeg);
        RoundPeg largeRpeg = new SquarePegAdapter(largeSqpeg);
        rs = hole.fits(smallRpeg);
        System.out.println("rs = " + rs);
        rs = hole.fits(largeRpeg);
        System.out.println("rs = " + rs);
    }

}
